package marja;

/**
 * Klasse für Kundendaten
 * 
 * @author Marja Ahlbrand
 *
 */
class Kunde
{

    // Attribute
    int kundennummer;
    String vorname;
    String nachname;

    /**
     * unveränderbarer eindeutiger Kundenindex für die interne Verwendung
     */
    private final int kundenindex;

   /**
    * Zählervariable die bei jedem erzeugten Objekt hochgezählt wird und für den einduetigen Kundenindex verwendet wird
    */
    private static int index=0;

    // Konstruktor
    /**
     * erzeugt einen neuen Kunden und mit einer selbstgewählten aber eindeutigen Kundennummer
     * @param neueKundennummer als int
     * @param neuerVorname
     * @param neuerNachname
     */
    Kunde(int neueKundennummer, String neuerVorname, String neuerNachname)
    {
        setKundennummer(neueKundennummer);
        setVorname(neuerVorname);
        setNachname(neuerNachname);
        kundenindex = index;
        index++;
    }

    /**
     * erzeugt einen neuen Kunden und mit einer automatisch eindeutiger Kundennummer
     * @param neuerVorname
     * @param neuerNachname
     */
    Kunde(String neuerVorname, String neuerNachname)
    {
        setKundennummer(index);
        setVorname(neuerVorname);
        setNachname(neuerNachname);
        kundenindex = index;
        index++;
    }

    // Methoden
    // Setter-Methoden
    
    /**
     * setzt eine Kundennummer
     * @param neueKundennummer
     */
    void setKundennummer(int neueKundennummer)
    {
        kundennummer = neueKundennummer;
    }

    /**
     * setzt einen Vornamen
     * @param neuerVorname
     */
    void setVorname(String neuerVorname)
    {
        vorname = neuerVorname;
    }

    /**
     * setzt einen Nachnamen
     * @param neuerNachname
     */
    void setNachname(String neuerNachname)
    {
        nachname = neuerNachname;
    }

    // GetterMethoden
    
    /**
     * @return Kundennummer des Kunden
     */
    int getKundennummer()
    {
        return kundennummer;
    }

    /**
     * 
     * @return Vorname des Kunden
     */
    String getVorname()
    {
        return vorname;
    }

    /**
     * 
     * @return Nachname des Kunden
     */
    String getNachname()
    {
        return nachname;
    }

    /**
     * 
     * @return Kundenindex für interne Verwendung
     */
    int getKundenindex()
    {
        return kundenindex;
    }

}
